from dataclasses import dataclass
from datetime import datetime

@dataclass
class Job:
    """
    职位信息数据模型
    使用dataclass装饰器简化类的定义
    
    Attributes:
        title (str): 职位名称
        company (str): 公司名称
        salary (str): 薪资待遇
        location (str): 工作地点
        description (str): 职位描述
        contact (str): 联系方式，默认为空字符串
        publish_time (datetime): 发布时间，默认为None
        source_url (str): 信息来源URL，默认为空字符串
    """
    title: str
    company: str
    salary: str
    location: str
    description: str
    contact: str = ''
    publish_time: datetime = None
    source_url: str = ''
    
    def to_dict(self):
        """
        将职位信息转换为字典格式
        
        Returns:
            dict: 包含所有字段的字典
        
        Notes:
            - 处理datetime类型的特殊转换
            - 用于数据序列化和CSV导出
        """
        return {
            'title': self.title,
            'company': self.company,
            'salary': self.salary,
            'location': self.location,
            'description': self.description,
            'contact': self.contact,
            'publish_time': self.publish_time.strftime('%Y-%m-%d %H:%M:%S') if self.publish_time else '',
            'source_url': self.source_url
        } 